home *** CD-ROM | disk | FTP | other *** search
- /*//////////////////////////////////////////////////////////////////////
- Filename: fwn-tools.js
- Company Name: Computer Associates International, Inc.
- Legal Copyright: Copyright (c) Computer Associates International, Inc.
- Author: Marek Matus (marek.matus@ca.com)
- Product: Tiny Firewall
- Description: javascript code - help functions for FW
- ///////////////////////////////////////////////////////////////////////*/
-
- function getAppListArray( bUseClientParser, bGroups)
- {
- var arList = eval(transformXMLWithParamsEx( XM_APPREP, bUseClientParser, "../firewall/fwn-tools.xsl", "templateName=" + (bGroups? "getAppGroupListArray" : "getAppListArray")));
-
- if ( bGroups )
- {
- var arList2 = new Array();
-
- for (var i = 0; i < arList.length; i++)
- {
- if ( !isSystemAppRepGroup( arList[i] ))
- arList2.push( arList[i] );
- }
-
- return arList2;
- }
- else
- return arList;
- }
-
- function getAppOptionList( bUseClientParser, bGroups)
- {
- var arList = getAppListArray(bUseClientParser, bGroups);
- var retHTML = '';
-
- for (var i = 0; i < arList.length; i++)
- {
- if ( bGroups )
- {
- if ( !isSystemAppRepGroup( arList[i] ))
- retHTML += '<option value="g:' + stringToHTMLValue(arList[i]) + '">'+ arList[i] + '</option>';
- }
- else
- retHTML += '<option value="a:' + stringToHTMLValue(arList[i]) + '">'+ arList[i] + '</option>';
- }
-
- return retHTML;
- }
-
- function getTransportList( bUseClientParser, bOnlyInDir )
- {
- if ( bOnlyInDir )
- return eval(transformXMLWithParamsEx( XM_FW, bUseClientParser, "../firewall/fwn-tools.xsl", "templateName=getTransportListArrayInDir"));
- else
- return eval(transformXMLWithParamsEx( XM_FW, bUseClientParser, "../firewall/fwn-tools.xsl", "templateName=getTransportListArray"));
- }
-
- function getWordList( bUseClientParser )
- {
- return eval(transformXMLWithParamsEx( XM_FW, bUseClientParser, "../firewall/fwn-tools.xsl", "templateName=getWordListArray"));
- }
-
- function getWordListOption( bUseClientParser )
- {
- var arList = getWordList(bUseClientParser);
- var retHTML = '';
-
- for (var i = 0; i < arList.length; i++)
- retHTML += '<option value="' + stringToHTMLValue(arList[i]) + '">'+ arList[i] + '</option>';
-
- return retHTML;
- }
-
- function getTransportOptionList( bUseClientParser )
- {
- var arList = getTransportList(bUseClientParser);
- var retHTML = '';
-
- for (var i = 0; i < arList.length; i++)
- retHTML += '<option value="' + stringToHTMLValue(arList[i]) + '">'+ arList[i] + '</option>';
-
- return retHTML;
- }
-
- function getTransportListTCPUDP( bUseClientParser, bOnlyInDir )
- {
- if ( bOnlyInDir )
- return eval(transformXMLWithParamsEx( XM_FW, bUseClientParser, "../firewall/fwn-tools.xsl", "templateName=getTransportListArrayTCPUDPDirIn"));
- else
- return eval(transformXMLWithParamsEx( XM_FW, bUseClientParser, "../firewall/fwn-tools.xsl", "templateName=getTransportListArrayTCPUDP"));
- }
-
- function getTransportOptionListTCPUDP( bUseClientParser )
- {
- var arList = getTransportListTCPUDP(bUseClientParser);
- var retHTML = '';
-
- for (var i = 0; i < arList.length; i++)
- retHTML += '<option value="' + stringToHTMLValue(arList[i]) + '">'+ arList[i] + '</option>';
-
- return retHTML;
- }
-
- function addPROTOOptionListDOM( objSelect, bUseClientParser, bRoutedMode, bOnlyInDir )
- {
- var arList = (bRoutedMode? getTransportListTCPUDP(bUseClientParser, bOnlyInDir) : getTransportList( bUseClientParser, bOnlyInDir ));
- var retHTML = '';
-
- for (var i = 0; i < arList.length; i++)
- addOptionDOM(objSelect, arList[i], arList[i])
- }
-
- function getIPList( bUseClientParser )
- {
- return eval(transformXMLWithParamsEx( XM_FW, bUseClientParser, "../firewall/fwn-tools.xsl", "templateName=getIPListArray"));
- }
-
- function getIPOptionList( bUseClientParser )
- {
- var arList = getIPList(bUseClientParser);
- var retHTML = '';
-
- for (var i = 0; i < arList.length; i++)
- retHTML += '<option value="' + stringToHTMLValue(arList[i]) + '">'+ arList[i] + '</option>';
-
- return retHTML;
- }
-
- function addIPOptionListDOM( objSelect, bUseClientParser )
- {
- var arList = getIPList(bUseClientParser);
-
- for (var i = 0; i < arList.length; i++)
- addOptionDOM(objSelect, arList[i], arList[i])
- }
-
- function IP_getIPAddressObj( sPrefix )
- {
- var addrIP = '';
- var addrIPID = '';
-
- if ( formAdd.elements[sPrefix + '_TYPE'].value == "*")
- addrIP = "*";
- else if ( formAdd.elements[sPrefix + '_TYPE'].value == "pre")
- addrIPID = formAdd.elements[sPrefix + 'IP_PRE'].value;
- else if ( formAdd.elements[sPrefix + '_TYPE'].value == "direct")
- addrIP = formAdd.elements[sPrefix + 'IP_DIRECT'].value;
-
- var oIP = new Object()
-
- oIP.ip = addrIP;
- oIP.ipID = addrIPID;
-
- return oIP;
- }
-
- function IP_ShowEditDlgIPAddress(strObjID, bClientParser)
- {
- external.CfgRegValueString("fwn-ipaddr-edit.html_params") = "?objid=" + escape(strObjID) + "&cp=" + bClientParser;
-
- var arParams = new Array();
-
- arParams[0] = external;
-
- var sFeatures="dialogHeight: 215px; dialogWidth: 565px; help:no; status:no; resizable:no; center:yes;";
-
- var arRetVal = window.showModalDialog( 'fwn-ipaddr-edit.html', arParams, sFeatures );
-
- if ( arRetVal && arRetVal[0] && arRetVal[1])
- return arRetVal[1];
-
- return '';
- }
-
- function IP_ShowEditDlgIPAddressItem( strInit )
- {
- var arParams = new Array();
-
- arParams[0] = external;
- arParams[1] = strInit;
-
- var sFeatures="dialogHeight: 240px; dialogWidth: 275px; help:no; status:no; resizable:no; center:yes;";
-
- var arRetVal = window.showModalDialog( 'fwn-ipaddr-edit-item.html', arParams, sFeatures );
-
- if ( arRetVal && arRetVal[0] )
- return arRetVal[0];
-
- return '';
- }
-
- // We do not know if it is from server/client database! Server database is preferred.
- function IP_editIPObjFromEditRule( strObjID, bClientRule )
- {
- if ( !strObjID )
- return;
-
- if ( isSPEditable() )
- {
- var definitionList = getDefinitionList(false);
-
- try
- {
- var definition = definitionList.Get( strObjID );
-
- IP_ShowEditDlgIPAddress(strObjID);
- return;
- }
- catch (e)
- {
- }
- }
-
- if ( bClientRule )
- {
- var definitionList = getDefinitionList(true);
-
- try
- {
- var definition = definitionList.Get( strObjID );
-
- IP_ShowEditDlgIPAddress(strObjID, true);
- return;
- }
- catch (e)
- {
- }
- }
-
- alert( processMsg( getStr('','STR_MSG_CANNOT_EDIT_PRE_OBJ'), strObjID ));
- }
-
- function IP_addIPObjToSelect(selID, bUseCP)
- {
- var bClientParser = !isSPEditable();
- var strNewObj = IP_ShowEditDlgIPAddress('', bClientParser);
-
- if ( strNewObj )
- IP_initIPObjSelect(selID, strNewObj, bUseCP);
- }
-
- function IP_initIPObjSelectByRef(objSelect, strObj, bUseCP)
- {
- if ( objSelect )
- {
- clearOptionsDOM( objSelect );
-
- addOptionDOM(objSelect, '', getStr('fw','STR_VPN_N_SEL_PRE'))
-
- if ( bUseCP )
- {
- addOptionDOM(objSelect, '', getStr('','STR_OPT_SEL_USER_OBJ'), COLOR_DB_ROW);
- addIPOptionListDOM( objSelect, true );
- addOptionDOM(objSelect, '', getStr('','STR_OPT_SEL_COMMON_OBJ'), COLOR_DB_ROW);
- }
-
- addIPOptionListDOM( objSelect, false );
-
- if ( strObj )
- objSelect.value = strObj;
-
- if ( !objSelect.value )
- objSelect.selectedIndex = 0;
- }
-
- }
-
- function IP_getFloatMenuBtns( strFormName, strDirectFnc, bUseClientParser, strFncAddObj)
- {
- var strHTML = '';
-
- strHTML += '<input type="submit" class="MenuItemButton" value="' + getStr('','STR_DLG_IP_ALL') + '" onmouseover="this.className=\'MenuItemButtonOn\'\" onmouseout=\"this.className=\'MenuItemButton\'\" onclick=\"' + strFormName + '.elements[\'value\'].value = \'*\';\"><br>';
-
- strHTML += '<input style="color: ' + COLOR_DIRECT_ROW + '" type="button" class="MenuItemButton" value="' + getStr('','STR_OPT_SEL_SPEC_DIR') + '" onmouseover="this.className=\'MenuItemButtonOn\'" onmouseout="this.className=\'MenuItemButton\'" onclick="' + strDirectFnc + ';"><br>';
-
- if ( bUseClientParser )
- {
- strHTML += '<span style="font-weight: bold; color: ' + COLOR_DB_ROW + '">' + getStr('','STR_OPT_SEL_USER_OBJ') + '</span><br>';
-
- if ( strFncAddObj )
- strHTML += '<input style="color: ' + COLOR_DIRECT_ROW + '" type="button" class="MenuItemButton" value="' + getStr('','STR_OPT_SEL_ADD_CLIENT_OBJ') + '" onmouseover="this.className=\'MenuItemButtonOn\'" onmouseout="this.className=\'MenuItemButton\'" onclick="' + strFncAddObj + '(true)"><br>'
- var arList = getIPList(true);
-
- for (var i = 0; i < arList.length; i++)
- strHTML += '<input type="submit" class="MenuItemButton" style="width: 100%" value="' + stringToHTMLValue(arList[i]) + '" onmouseover="this.className=\'MenuItemButtonOn\'" onmouseout="this.className=\'MenuItemButton\'" onclick="' + strFormName + '.elements[\'valueID\'].value = \'' + stringToHTML(arList[i]) +'\'"><br>';
-
- strHTML += '<span style="font-weight: bold; color: ' + COLOR_DB_ROW + '">' + getStr('','STR_OPT_SEL_COMMON_OBJ') + '</span><br>';
- }
-
- if ( isSPEditable() && strFncAddObj )
- strHTML += '<input style="color: ' + COLOR_DIRECT_ROW + '" type="button" class="MenuItemButton" value="' + getStr('','STR_OPT_SEL_ADD_COMMON_OBJ') + '" onmouseover="this.className=\'MenuItemButtonOn\'" onmouseout="this.className=\'MenuItemButton\'" onclick="' + strFncAddObj + '(false)"><br>'
-
- var arList = getIPList(false);
-
- for (var i = 0; i < arList.length; i++)
- strHTML += '<input type="submit" class="MenuItemButton" style="width: 100%" value="' + stringToHTMLValue(arList[i]) + '" onmouseover="this.className=\'MenuItemButtonOn\'" onmouseout="this.className=\'MenuItemButton\'" onclick="' + strFormName + '.elements[\'valueID\'].value = \'' + stringToHTML(arList[i]) +'\'"><br>';
-
- return strHTML;
- }
-
- function IP_initIPObjSelect(selID, strObj, bUseCP)
- {
- IP_initIPObjSelectByRef(getObj(selID), strObj, bUseCP)
- }
-
- function getTimeList()
- {
- return eval(transformXMLWithParamsEx( XM_FW, false, "../firewall/fwn-tools.xsl", "templateName=getTimesListArray"));
- }
-
- function getTimeOptionList()
- {
- var arList = getTimeList();
- var retHTML = '';
-
- for (var i = 0; i < arList.length; i++)
- retHTML += '<option value="' + stringToHTMLValue(arList[i]) + '">'+ arList[i] + '</option>';
-
- return retHTML;
- }
-
- function addTimeOptionListDOM( objSelect )
- {
- var arList = getTimeList();
-
- for (var i = 0; i < arList.length; i++)
- addOptionDOM(objSelect, arList[i], arList[i])
- }
-
- function isObjNameUnique( strName, bUseClientParser )
- {
- return parseBoolean(transformXMLWithParamsEx( XM_FW, bUseClientParser, "../firewall/fwn-tools.xsl", "templateName=isObjNameUnique&name=" + escape(strName)));
- }
-
- function PROTO_initObjSelect(selID, strObj, bUseCP, bDirectRow, bRoutedMode, bOnlyInDir)
- {
- PROTO_initObjSelectByRef(getObj(selID), strObj, bUseCP, bDirectRow, bRoutedMode, bOnlyInDir)
- }
-
- function PROTO_initObjSelectByRef(objSelect, strObj, bUseCP, bDirectRow, bRoutedMode, bOnlyInDir)
- {
- if ( objSelect )
- {
- clearOptionsDOM( objSelect );
-
- addOptionDOM(objSelect, '', getStr('fw','STR_NRE_SEL_PROT'))
- if ( bDirectRow )
- addOptionDOM(objSelect, '', entitiesToStr(getStr('','STR_OPT_SEL_SPEC_DIR')), COLOR_DIRECT_ROW )
-
- if ( bUseCP && !bRoutedMode)
- {
- addOptionDOM(objSelect, '', getStr('','STR_OPT_SEL_USER_OBJ'), COLOR_DB_ROW);
- addPROTOOptionListDOM( objSelect, true, bRoutedMode, bOnlyInDir );
- addOptionDOM(objSelect, '', getStr('','STR_OPT_SEL_COMMON_OBJ'), COLOR_DB_ROW);
- }
-
- addPROTOOptionListDOM( objSelect, false, bRoutedMode, bOnlyInDir );
-
- if ( strObj )
- objSelect.value = strObj;
-
- if ( !objSelect.value )
- objSelect.selectedIndex = 0;
- }
-
- }
-
- function PROTO_ShowEditDlg(strObjID, bClientParser, bOnlyForRouted)
- {
- external.CfgRegValueString("fwn-transport-edit.html_params") = "?transportid=" + escape(strObjID) + "&cp=" + bClientParser;
-
- var arParams = new Array();
-
- arParams[0] = external;
- arParams[1] = bOnlyForRouted;
-
- var sFeatures="dialogHeight: 290px; dialogWidth: 400px; help:no; status:no; resizable:no; center:yes;";
-
- var arRetVal = window.showModalDialog( '../firewall/fwn-transport-edit.html', arParams, sFeatures );
-
- if ( arRetVal && arRetVal[0] && arRetVal[1])
- return arRetVal[1];
-
- return '';
- }
-
- // We do not know if it is from server/client database! Server database is preferred.
- function PROTO_editObjFromEditRule( strObjID, bClientRule )
- {
- if ( !strObjID )
- return;
-
- if ( isSPEditable() )
- {
- var definitionList = getDefinitionList(false);
-
- try
- {
- var definition = definitionList.Get( strObjID );
-
- PROTO_ShowEditDlg(strObjID);
- return;
- }
- catch (e)
- {
- }
- }
-
- if ( bClientRule )
- {
- var definitionList = getDefinitionList(true);
-
- try
- {
- var definition = definitionList.Get( strObjID );
-
- PROTO_ShowEditDlg(strObjID, true);
- return;
- }
- catch (e)
- {
- }
- }
- alert( processMsg( getStr('','STR_MSG_CANNOT_EDIT_PRE_OBJ'), strObjID ));
- }
-
- function PROTO_addObjToSelect(selID, bUseCP, bDirectRow, bRoutedMode, bOnlyInDir)
- {
- var bClientParser = !isSPEditable();
- var strNewObj = PROTO_ShowEditDlg('', bClientParser, bRoutedMode);
-
- if ( strNewObj )
- PROTO_initObjSelect(selID, strNewObj, bUseCP, bDirectRow, bRoutedMode, bOnlyInDir);
- }
- ///////// time functions /////////////////
- function TIME_initObjSelect(selID, strObj, bDirectRow)
- {
- TIME_initObjSelectByRef(getObj(selID), strObj, bDirectRow)
- }
-
- function TIME_initObjSelectByRef(objSelect, strObj, bDirectRow)
- {
- if ( objSelect )
- {
- clearOptionsDOM( objSelect );
-
- addOptionDOM(objSelect, '*', '*')
- if ( bDirectRow )
- addOptionDOM(objSelect, '', entitiesToStr(getStr('','STR_OPT_SEL_SPEC_DIR')), COLOR_DIRECT_ROW )
-
- addTimeOptionListDOM( objSelect );
-
- if ( strObj )
- objSelect.value = strObj;
-
- if ( !objSelect.value )
- objSelect.selectedIndex = 0;
- }
- }
-
- // We do not know if it is from server/client database! Server database is preferred.
- function TIME_editObjFromEditRule( strObjID )
- {
- if ( !strObjID || strObjID == '*')
- return;
-
- if ( isSPEditable() )
- {
- var definitionList = getDefinitionList(false);
-
- try
- {
- var definition = definitionList.Get( strObjID );
- var strIntervals = '';
-
- var itemEnum = new Enumerator(definition.ItemList);
- itemEnum.moveFirst();
-
- if (!itemEnum.atEnd())
- {
- var item = itemEnum.item();
- strIntervals = item.Content;
- }
-
- TIME_ShowEditDlg(strObjID, strIntervals);
-
- return;
- }
- catch (e)
- {
- }
- }
-
- alert( processMsg( getStr('','STR_MSG_CANNOT_EDIT_PRE_OBJ'), strObjID ));
- }
-
- function TIME_addObjToSelectByRef(objSelect, bDirectRow)
- {
- var strNewObj = TIME_ShowEditDlg('','');
-
- if ( strNewObj )
- TIME_initObjSelectByRef(objSelect, strNewObj, bDirectRow);
- }
-
- function parseProtocolInterval( iProtocols )
- {
- var iProtFrom = iProtocols % 65536;
- var iProtTo = (iProtocols - iProtFrom) / 65536;
-
- return ( iProtFrom == iProtTo? iProtTo : iProtFrom + "-" + iProtTo );
- }
-
- function parsePortInterval( iFrom, iTo )
- {
- if (iFrom == 0 && iTo == 65535)
- return "*";
- else if (iFrom == iTo)
- return iTo;
- else
- return iFrom + "-" + iTo;
- }
-
- function parsePortIntervalToCtrl( iFrom, iTo, oFrom, oTo, oSelType )
- {
- if (iFrom == 0 && iTo == 65535)
- oSelType.value = '*';
- else if (iFrom == iTo)
- {
- oFrom.value = iFrom;
- oSelType.value = 'single';
- }
- else
- {
- oFrom.value = iFrom;
- oTo.value = iTo;
- oSelType.value = 'range';
- }
- }
-
- // Flags for ldap rules
- function LDAPRuleFlags( strFlags )
- {
- this.init(strFlags);
- }
-
- LDAPRuleFlags.prototype.init = function(strFlags)
- {
- var arList = new Array();
-
- if ( strFlags )
- {
- if ( strFlags.substring(0,3) == '@@:' )
- {
- strFlags = strFlags.substring(3);
- arList = strFlags.split(";");
- }
- }
-
-
- this.isMaster = (arList[0] && (arList[0] == 'm'));
- this.isSlave = !this.isMaster;
- this.oppositeRuleID = (arList[1]? arList[1] : '');
- }
-
- LDAPRuleFlags.prototype.setMaster = function( bMaster )
- {
- this.isMaster = bMaster;
- this.isSlave = !this.isMaster;
- }
-
- LDAPRuleFlags.prototype.toString = function()
- {
- return '@@:' + (this.isMaster? 'm' : 's') + ';' + (this.oppositeRuleID? this.oppositeRuleID : '');
- }
-
- function getEvent( strConstEvent )
- {
- if ( strConstEvent == 'Ignore' )
- return getStr('','STR_AUDIT_IGNORE');
- else if ( strConstEvent == 'Monitor' )
- return getStr('','STR_AUDIT_MONITOR');
- else if ( strConstEvent == 'Alert' )
- return getStr('','STR_AUDIT_ALERT')
- else
- return strConstEvent;
- }
-
- function getCFAccess(strAccess, bReplExists)
- {
- if ( strAccess == 'Allow')
- {
- if ( bReplExists )
- return getStr('fw','STR_HFR_AR_REPLACE');
- else
- return getAccess( strAccess );
- }
- else
- return getAccess( strAccess );
- }
-
- function getAccess( strConstAccess )
- {
- if ( strConstAccess == 'Allow' )
- return getStr('','STR_ACCESS_ALLOW');
- else if ( strConstAccess == 'Prevent' )
- return getStr('','STR_ACCESS_PREVENT');
- else if ( strConstAccess == 'AskUser' )
- return getStr('','STR_ACCESS_ASK');
- else
- return strConstAccess;
- }
-
- // format is xxx.xxx.xxx.xxx where xxxx is number <0..255>
- function IP_checkIPv4Format( strIP )
- {
- var arItems = strIP.split('.');
-
- if ( arItems.length != 4 )
- return false;
-
- for (var i=0; i < 4; i++ )
- {
- var oRe = new RegExp("^[0-9]{1,3}$") ;
- if ( !oRe.test(arItems[i]) )
- return false;
-
- var iValue = parseInt(arItems[i]);
-
- if ( isNaN( iValue ))
- return false;
-
- if ( iValue > 255 )
- return false;
- }
-
- return true;
- }
-
- function IP_checkIPv6Format( strIP )
- {
- var arItems = strIP.split(':');
- var bEmptyItem = false;
-
- if ( arItems.length > 8 )
- return false;
-
- // get count of double-colon
- var i = strIP.indexOf('::');
- var cnt = 0;
- while ( i != -1)
- {
- cnt++;
- i = strIP.indexOf('::',i+1);
- }
-
- if ( cnt > 1 ) // one double collon can be here
- return false;
-
- for (var i=0; i < arItems.length; i++ )
- {
- if ( arItems[i] )
- {
- var oRe = new RegExp("^[0-9,a-f,A-F]{1,4}$") ;
- if ( !oRe.test(arItems[i]) )
- {
- return false;
- }
- }
- }
-
- if ( arItems.length < 8 && (cnt==0) )
- {
- return false;
- }
-
- return true;
- }
-
- function IP_getPorts( oFrom, oTo, bRange, bNoMsgs )
- {
- var strPorts = '';
-
- // must be number
- if ( !isNumber(oFrom.value))
- {
- if ( !bNoMsgs )
- {
- alert(getStr('fw','STR_INVALID_PORT'))
- setFocus(oFrom)
- }
- return '';
- }
-
- var iPortFrom = parseInt(oFrom.value);
-
- if ( bRange ) // range
- {
- // must be number
- if ( !isNumber(oTo.value))
- {
- if ( !bNoMsgs )
- {
- alert(getStr('fw','STR_INVALID_PORT'))
- setFocus(oTo)
- }
- return '';
- }
-
- var iPortTo = parseInt(oTo.value);
-
- // from must be lower then to
- if ( iPortTo < iPortFrom)
- {
- if ( !bNoMsgs )
- {
- alert(getStr('fw','STR_INVALID_PORT'))
- setFocus(oTo)
- }
- return '';
- }
-
- strPorts = iPortFrom + '-' + iPortTo;
- }
- else
- strPorts = iPortFrom;
-
- return strPorts.toString();
- }
-
- function PROTO_getProtNums( oFrom, oTo, bRange, bNoMsgs )
- {
- var strOutProtNums = '';
-
- // must be number
- if ( !isNumber(oFrom.value))
- {
- if ( !bNoMsgs )
- {
- alert(getStr('fw','STR_INVALID_PROTNUM'))
- setFocus(oFrom)
- }
- return '';
- }
-
- // must be lower then 256
- var iProtNumFrom = parseInt(oFrom.value);
- if ( iProtNumFrom > 255 )
- {
- if ( !bNoMsgs )
- {
- alert(getStr('fw','STR_INVALID_PROTNUM'))
- setFocus(oFrom)
- }
- return '';
- }
-
- if ( bRange ) // range
- {
- // must be number
- if ( !isNumber(oTo.value))
- {
- if ( !bNoMsgs )
- {
- alert(getStr('fw','STR_INVALID_PROTNUM'))
- setFocus(oTo)
- }
- return '';
- }
-
- // must be lower then 256
- var iProtNumTo = parseInt(oTo.value);
- if ( iProtNumTo > 255 )
- {
- if ( !bNoMsgs )
- {
- alert(getStr('fw','STR_INVALID_PROTNUM'))
- setFocus(oTo)
- }
- return '';
- }
-
- // from must be lower then to
- if ( iProtNumTo < iProtNumFrom)
- {
- if ( !bNoMsgs )
- {
- alert(getStr('fw','STR_INVALID_PROTNUM'))
- setFocus(oTo)
- }
- return '';
- }
-
- strOutProtNums = iProtNumFrom + '-' + iProtNumTo;
- }
- else
- strOutProtNums = iProtNumFrom;
-
- return strOutProtNums;
- }
-